package com.new1cloud.file.upload.client.entry;

import io.netty.channel.FileRegion;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 分片文件信息
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ChunkFile implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 文件名
     */
    private String fileName;
    /**
     * 文件唯一标识码
     */
    private String fileHash;
    /**
     * 文件大小，单位字节
     */
    private Long fileSize;

    /**
     * 分片文件的偏移量
     */
    private Long offset;

    /**
     * 分片文件名，从'1'开始依次往后
     */
    private String chunkName;

    /**
     * 分片数据
     */
    private byte[] chunkData;
//    private ByteBuf chunkData;
//    private FileRegion chunkData;

    /**
     * 是否是最后一个分片文件，1表示是最后一个分片文件，0表示不是
     */
    private Integer lastChunk;

    /**
     * 上传的远端目录
     */
    private String uploadDir;

    @Override
    public String toString() {
        return "ChunkFile{" +
                "fileName='" + fileName + '\'' +
                ", fileHash='" + fileHash + '\'' +
                ", offset=" + offset +
                ", chunkName='" + chunkName + '\'' +
                ", lastChunk=" + lastChunk +
                '}';
    }
}
